Secure and Extensible Pay Per Action Online Advertising

ABSTRACT

Systems and methods are provided to allow advertisers to make ads available to publishers through an advertising system. The advertising system provides tamper proof tracking of conversion activity between publishers and advertisers. Further, advertisers can define plural different conversions to be associated with a single ad click through.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.11/477,134, titled “Secure and Extensible Pay Per Action OnlineAdvertising” filed Jun. 27, 2006, which claims priority under 35 U.S.C.§119(e) to U.S. Provisional Application Ser. No. 60/816,148, titled“Conversion Tracking For Online Advertising” filed Jun. 22, 2006, thedisclosures of each are incorporated herein by reference in theirentireties.

The subject matter of this application is generally related to U.S.patent application Ser. No. 11/379,510 for “Syndicated Trackable AdContent,” filed Apr. 20, 2006, U.S. patent application Ser. No.11/375,900 for “Serving Advertisements based on Content”, filed Apr. 20,2006, U.S. patent application Ser. No. 10/314,427, for “Method andApparatus For Serving Relevant Advertisements,” filed Feb. 26, 2003.Each of these applications is incorporated by reference herein in itsentirety.

TECHNICAL FIELD

The subject matter of this application is generally related toadvertising.

BACKGROUND

Advertising using traditional media, such as television, radio,newspapers and magazines, is well known. Unfortunately, even when armedwith demographic studies and entirely reasonable assumptions about thetypical audience of various media outlets, advertisers recognize thatmuch of their ad budget is simply wasted. Moreover, it is very difficultto identify and eliminate such waste.

Recently, advertising over more interactive media has become popular.For example, as the number of people using the Internet has exploded,advertisers have come to appreciate media and services offered over theInternet as a potentially powerful way to advertise.

Web site-based ads (also referred to as “Web ads”) are some timespresented to their advertising audience in the form of “bannerads”—i.e., a rectangular box that includes graphic components. When amember of the advertising audience (referred to as a “viewer” or “user”in the Specification without loss of generality) selects one of thesebanner ads by clicking on it, embedded hypertext links typically directthe viewer to the advertiser's Web site. This process, wherein theviewer selects an ad, is commonly referred to as a “click-through”(“Click-through” is intended to cover any user selection.). The ratio ofthe number of click-throughs to the number of impressions of the ad(i.e., the number of times an ad is displayed) is commonly referred toas the “click-through rate” of the ad. A “conversion” is said to occurwhen a user consummates a transaction related to a previously served ad.What constitutes a conversion may vary from case to case and can bedetermined in a variety of ways. For example, it may be the case that aconversion occurs when a user clicks on an ad, is referred to theadvertiser's web page, and consummates a purchase there before leavingthat web page. Alternatively, a conversion may be defined as a userbeing shown an ad, and making a purchase on the advertiser's web pagewithin a predetermined time (e.g., seven days). Many other definitionsof what constitutes a conversion are possible. The ratio of the numberof conversions to the number of impressions of the ad (i.e., the numberof times an ad is displayed) is commonly referred to as the conversionrate.

Despite the initial promise of Web site-based advertisement, thereremain several problems with existing approaches. Although advertisersare able to reach a large audience, they are frequently dissatisfiedwith the return on their advertisement investment. Some have attemptedto improve ad performance by tracking the online habits of users, butthis approach has led to privacy concerns.

Similarly, the hosts of Web sites on which the ads are presented(referred to as “Web site hosts” or “publishers”) have the challenge ofmaximizing ad revenue without impairing their users' experience. SomeWeb site hosts have chosen to place advertising revenues over theinterests of users. One such Web site hosts a so-called “search engine”service returning advertisements masquerading as “search results” inresponse to user queries. The web site permits advertisers to pay toposition an ad for their Web site (or a target Web site) higher up onthe list of purported search results. If such schemes where theadvertiser only pays if a user clicks on the ad (i.e., cost-per-click)are implemented, the advertiser lacks incentive to target their adseffectively, since a poorly targeted ad will not be clicked andtherefore will not require payment. Consequently, high cost-per-clickads show up near or at the top, but do not necessarily translate intoreal revenue for the ad publisher because viewers don't click on them.Furthermore, ads that viewers would click on are further down the list,or not on the list at all, and so relevancy of ads is compromised.

Search engines, such as Google for example, have enabled advertisers totarget their ads so that they will be rendered in conjunction with asearch results page responsive to a query that is relevant, presumably,to the ad. Although search result pages afford advertisers a greatopportunity to target their ads to a more receptive audience, searchresult pages are merely a fraction of page views of the World Wide Web.

Conventional cost-per-action advertising pays a publisher when aconversion action transpires as a result of a click-through to theadvertiser site using special links and/or cookies that track the statusof the end user. Conventional cost-per-action advertising is insecurewhen tracking the conversion action associated with a cost. Typically, aone by one pixel “callback” is sent indicating a conversion actioncompletion or the advertiser may submit a log of transactions indicatingcompleted conversion actions. Neither of these methods is effective inallowing easy, self-service tracking of conversions. The pixel callbackis susceptible to repeated, fraudulent downloading, providing littleability to determine legitimate conversions versus spoofed conversions.The log method requires custom tooling of the advertiser site to providedata to a publisher/payment system, as well as a level of trust betweenthe advertiser and the publisher/payment system. There exists thepossibility that untrustworthy advertisers will misreport conversionactions. Further, these methods only allow for one conversion action tobe defined per ad. In many cases it is desirable to allow multipledefinitions of a conversion action to occur after a click-through of asingle ad.

SUMMARY

A system and methods are provided to allow advertisers to make adsavailable to publishers through an advertising system. The advertisingsystem provides tamper proof tracking of conversion activity betweenpublishers and advertisers. Further, advertisers can define pluraldifferent conversions to be associated with a single ad click through.

In some implementations, a computer-implemented method includes:providing a user interface for presentation on a display device, theuser interface including at least one user interface element forallowing an advertiser to specify a conversion type and associate thespecified conversion type with a conversion value; receiving inputspecifying a conversion type and associated conversion value; andproviding the advertiser with a code snippet adapted for insertion intoa script for generating a conversion confirmation, the code snippetincluding a parameter associated with the specified conversion type,where the parameter is used by a payment system for handling a paymenttransaction associated with the advertiser in response to a conversionaction.

In some implementations, a computer-implemented method includes:specifying multiple conversion types for an ad; specifying a conversionvalue for a specified conversion type; receiving a code snippetincluding at least one parameter identifying at least one specifiedconversion type; generating a confirmation using the code snippet; andproviding access to the confirmation over a computer network.

In some implementations, a computer-implemented method includes:receiving a first parameter identifying a first conversion typeassociated with a first conversion action; and using the first parameterin a financial transaction related to the first conversion action.

In some implementations, a computer-implemented method includes:receiving a list of advertising units; selecting an advertising unitfrom the list; receiving a code snippet related to the selectedadvertising unit; and presenting the selected advertising unit on adisplay device using the code snippet.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the invention will be apparent from thedescription and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram of an example of an advertising system.

FIG. 2 is a flow chart of an example of a process for publishing anadvertisement.

FIG. 3 is a flow chart of an example of a process for preparing anadvertisement for publishing.

FIG. 4A is a flow chart of an example of a process for reporting, inreal-time, conversions from advertisements to actions.

FIG. 4B is a flow chart of an example of a process for reportingaccumulated conversions from advertisements to actions.

FIG. 5 is a flow chart of an example of a process for chargingadvertisers and crediting publishers for conversions from advertisementsto actions.

FIG. 6 is a first portion of an example of a user interface forselecting a referral item.

FIG. 7 is a second portion of an example of a user interface forselecting a referral item.

FIG. 8 is an example of a user interface for selecting referral unitsassociated with a referral item.

FIG. 9 is an example of a user interface for presenting code snippets,associated with referral units, to be presented by a publisher system.

FIG. 10 is an example of a user interface for creating a referral unit.

FIG. 11 is an example of a user interface for presenting a code snippet,associated with a referral unit, to be used at an advertiser system.

FIG. 12 is an example of a user interface for presenting a conversionaction report.

FIG. 13 is a block diagram of an example of a system for storing andretrieving conversion values.

FIG. 14 is a schematic diagram of an example of an architecture for anadvertising system manager/payment system.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Advertising System Overview

FIG. 1 is a schematic diagram of an example of an advertising system100. One or more advertisers 102 may directly, or indirectly, enter,maintain, and track advertisement (ad) information in an advertisingmanager and payment system 104. The ads may be in the form of graphicalads such as so-called banner ads, text only ads, image ads, audio ads,video ads, ads combining one of more of any of such components, etc. Theads may also include embedded information, such as a link,meta-information, and/or machine executable instructions. One or morepublishers 106 may submit requests for ads to, accept ads responsive totheir request from, and provide usage information to, the system 104.

Other entities, such as users 108 and the advertisers 102, may provideusage information (e.g., whether or not a conversion or click-throughrelated to the ad occurred) to the system 104. This usage informationmay include measured or observed user behavior related to ads that havebeen served. The system 104 performs financial transactions, such ascrediting the publishers 106 and charging the advertisers 102, based onthe usage information. A computer network 110, such as a local areanetwork (LAN), wide area network (WAN), the Internet, or a combinationthereof, connects the advertisers 102, the system 104, the publishers106, and the users 108.

One example of a publisher 106 is a general content server that receivesrequests for content (e.g., articles, discussion threads, music, video,graphics, search results, web page listings, etc.), and retrieves therequested content in response to, or otherwise services, the request.The content server may submit a request for ads to the system 104. Suchan ad request may include a number of ads desired. The ad request mayalso include content request information. This information may includethe content itself (e.g., page), a category corresponding to the contentor the content request (e.g., arts, business, computers, arts-movies,arts-music, etc.), part or all of the content request, content age,content type (e.g., text, graphics, video, audio, mixed media, etc.),geo-location information, etc.

The content server may combine the requested content with one or more ofthe advertisements provided by the system 104. This combined informationincluding the content and advertisement(s) is then forwarded to the enduser 108 that requested the content, for presentation to the viewer.Finally, the content server may transmit information about the ads andhow, when, and/or where the ads are to be rendered (e.g., position,click-through or not, impression time, impression date, size, conversionor not, etc.) back to the system 104. Alternatively, or in addition,such information may be provided back to the system 104 by some othermeans.

Another example of a publisher 106 is a search engine. A search enginemay receive queries for search results. In response, the search enginemay retrieve relevant search results (e.g., from an index of Web pages).An exemplary search engine is described in the article S. Brin and L.Page, “The Anatomy of a Large-Scale Hypertextual Search Engine,” SeventhInternational World Wide Web Conference, Brisbane, Australia and in U.S.Pat. No. 6,285,999, both of which are incorporated herein by referenceeach in their entirety. Such search results may include, for example,lists of Web page titles, snippets of text extracted from those Webpages, and hypertext links to those Web pages, and may be grouped into apredetermined number of (e.g., ten) search results.

The search engine may submit a request for ads to the system 104. Therequest may include a number of ads desired. This number may depend onthe search results, the amount of screen or page space occupied by thesearch results, the size and shape of the ads, etc. In oneimplementation, the number of desired ads will be from one to ten, andpreferably from three to five. The request for ads may also include thequery (as entered or parsed), information based on the query (such asgeo-location information, whether the query came from an affiliate andan identifier of such an affiliate), and/or information associated with,or based on, the search results. Such information may include, forexample, identifiers related to the search results (e.g., documentidentifiers or “docIDs”), scores related to the search results (e.g.,information retrieval (“IR”) scores such as dot products of featurevectors corresponding to a query and a document, Page Rank scores,and/or combinations of IR scores and Page Rank scores), snippets of textextracted from identified documents (e.g., WebPages), full text ofidentified documents, feature vectors of identified documents, etc.

The search engine may combine the search results with one or more of theadvertisements provided by the system 104. This combined informationincluding the search results and advertisement(s) is then forwarded tothe user 108 that requested the content, for presentation to the user108. Preferably, the search results are maintained as distinct from theads, so as not to confuse the user between paid advertisements andpresumably neutral search results.

Finally, the search engine may transmit information about the ad andwhen, where, and/or how the ad was to be rendered (e.g., position,click-through or not, impression time, impression date, size, conversionor not, etc.) back to the system 104. Alternatively, or in addition,such information may be provided back to the system 104 by some othermeans.

As can be appreciated from the foregoing, the advertising systemmanager/payment system 104 may serve publishers 106 such as contentservers and search engines. The serving of ads targeted to the searchresults page generated by a search engine is known. The proposed systemfurther permits the serving of ads targeted to documents served bycontent servers. For example, a network or inter-network may include anad server serving targeted ads in response to requests from a searchengine with ad spots for sale. Suppose that the inter-network is theWorld Wide Web. The search engine crawls much or all of the content.Some of this content will include ad spots (also referred to as“inventory”) available. More specifically, one or more content serversmay include one or more documents. Documents may include content,embedded information such as meta-information and machine executableinstructions, and ad spots available. Note that ads inserted into adspots in a document can vary each time the document is served.Alternatively, ads inserted into ad spots can have a static associationwith a given document. An ad server may use the results of a separatecrawl of the some or all of the content with ad spots available.

FIGS. 2, 3, 4A, 4B, and 5 are flow charts of example processes 200, 300,400, 408, and 500 that may be performed, for example, by a system suchas the system 100 and, for clarity of presentation, the description thatfollows uses the system 100 as the basis of an example for describingthe processes 200, 300, 400, 408, and 500. However, another system, orcombination of systems, may be used to perform the processes 200, 300,400, 408, and 500.

Referral Process

FIG. 2 is a flow chart of an example of a process 200 for publishing anadvertisement. Process 200 begins with a login (202) to an advertisingsystem manager. For example, a user at one of the publisher systems 106may login to the advertising system manager/payment system 104 byproviding a user name and password to the system 104. The login mayoccur, for example, via a web page and the login process may useencryption, such as secure Hypertext Transfer Protocol (HTTPS).

Process 200 determines (204) one or more items to be advertised. Forexample, the publisher user may select from a list specific productsand/or services (referred to here as referral items) to advertise at apublisher site. The list of referral items may be the result of a searchinitiated by the publisher user based on, for example, a keyword orcategory selection made by the publisher user. In another example, thepublisher user may select one or more keywords and/or one or morereferral item categories that the system 104 may use to automaticallydetermine referral items. Alternatively, the publisher 106 may providesite content to the system 104 or the system 104 may retrieve sitecontent from the publisher 106. The system 104 then may contextuallydetermine referral items based on, for example, relevance of referralitems to the publisher site content. In another example, the system 104may determine referral items based on behaviors of the end user, such asa particular search query performed on a search engine website, or ageographical location of the end user, such as products/services forbusinesses located near the end user. In addition, a combination of theexamples for determining referral items described above may be used.

Process 200 selects (206) one or more referral units associated with thedetermined referral items. For example, the publisher user may selectparticular ads (referred to here as referral units) associated with adetermined referral item to present on a publisher web site. Ads mayinclude, for example, text links, images, audio, video, or other mediaand may be formatted, for example, in a banner/horizontal orientation ora sidebar/vertical orientation. In this example, the publisher userselects the referral units to present at the publisher web site.Alternatively, the system 104 may select appropriate referral unitsbased on, for example, a predetermined referral unit type specified bythe publisher user, such as banner ads. In addition, the system 104 mayrotate the selected referral unit from a list of referral units.

Process 200 receives (208) one or more code snippets, each associatedwith a selected referral unit. In one implementation, each code snippetincludes a signed or encoded specification of the referral ad(s)determined by the publisher. For example, the publisher 106 may receivea code snippet, from the system 104, associated with a selected referralunit, such as a banner ad for an MP3 (MPEG-1 Audio Layer 3) musicplayer. In some implementations, the code snippet includes aspecification corresponding to the selected ad(s) that associate with aset of conversion actions (e.g., purchasing the MP3 player, subscriptionto a mailing list) which may result from an end user's interaction withthe ad. In other implementations, when the ads that are eligible for aparticular set of conversion actions are known by the system 104, thespecification can be omitted from the code snippet. When a conversionoccurs, the conversion action allows the system 104 to determine howmuch the publisher 106 is credited resulting from showing the ad at thepublisher web site.

Process 200 adds (210) the one or more code snippets to a websitepublisher's web page code. For example, the publisher 106 may add thebanner ad code snippet to the publisher web page. In someimplementations, the code snippet is a web script, such as JavaScript.The execution of the code snippet by the end user 108 results in acontact with the system 104 and the display of the advertisement to theend user 108. When the end user 108 clicks on the displayedadvertisement, the system 104 is contacted again, and the end user 108is redirected to the advertiser's site. During this event the end user108 receives a signed browser cookie from the system 104. Tampering withthe contents of the signed cookie invalidates conversion actionsassociated with the cookie. The cookie includes information, such as anidentifier of the MP3 player banner ad, an identifier of the publisher106, and the date/time the banner ad was selected by the user 108. Thecookie is then used together with information associated with conversionactions performed at the advertiser 102 by the end user 108 to creditthe publisher 106 and debit the advertiser 102.

Conversion Action Selection Process

FIG. 3 is a flow chart of an example of a process 300 for preparing anadvertisement for publishing. Process 300 begins with a login (302) toan advertising system manager. For example, a user at one of theadvertiser systems 106 may login to the advertising systemmanager/payment system 104 by providing a user name and password to thesystem 104. The login may occur, for example, via a web page and thelogin process may use encryption, such as secure Hypertext TransferProtocol (HTTPS).

Process 300 selects (304) a conversion type or creates a new conversiontype. For example, a user of the advertiser system 102 may select aconversion type from a list provided by the system 104 or make an inputincluding a new conversion type. Each conversion type corresponds to aconversion action that the end user 108 may perform, such as a purchaseof a product or service, a selection of a banner ad (click-through) orother action.

Process 300 provides (306) a description of the conversion action forthe selected conversion type for presentation to website publishers. Forexample, the advertiser 102 may input description information to thesystem 104 to assist the publishers 106 in determining referral units topublish.

Process 300 specifies (308) a cost per conversion. For example, theadvertiser 102 may input a cost/value associated with the selectedconversion type, such as a 5 dollar credit to the publisher 106 for eachproduct or service purchased.

Process 300 creates (310) referral units to be used by websitepublishers. For example, the advertiser 102 may create a banner ad thatthe publisher 106 provides the end user 108.

Process 300 receives (312) a code snippet. In one implementation, thecode snippet includes one or more signed conversion type identifiers(IDs), for insertion in a confirmation page script. For example, thesystem 104 can generate a signed conversion type identifier associatedwith the selected conversion type, the specified cost per conversion,and the created referral unit. The system 104 transmits the signedconversion type identifier to the advertiser 102 within a code snippet.

Process 300 adds (314) the code snippet to a conversion confirmationpage script. For example, the end user 108 selects a particular bannerad at the publisher 106. The publisher code snippet directs the end user108 to the system 104 from which a signed browser cookie is retrieved.The end user 108 is then directed to a web page at the advertiser 102.The end user 108 performs a conversion action at the advertiser 102,such as purchasing a product or service. The advertiser code snippet isincluded within a conversion confirmation page script, such as a scriptwithin a web page presented after the purchase. The end user 108executes the advertiser code snippet. The advertiser code snippetcontacts the system 104 and reports the conversion type identifier fromthe advertiser code snippet as well as information from the cookie, suchas a publisher identifier, a referral unit identifier, and a date/timeof the referral unit impression and click.

Realtime Conversion Reporting Process

FIG. 4A is a flow chart of an example of a process 400 for reporting, inreal-time, conversions from advertisements to actions. Process 400begins with detecting (402) a conversion action. For example, theadvertiser code snippet may be executed from a conversion confirmationweb page indicating that the end user 108 performed a conversion action.

Process 400 identifies (404) conversion parameters related to theconversion action (e.g., information from a cookie or a conversion typeidentifier). For example, the advertiser code snippet may retrieve areferral unit identifier, a publisher identifier, and a date/time of thereferral unit impression and click from a cookie located at the end user108. The advertiser code snippet includes the conversion type identifierassociated with the conversion action performed by the end user 108.

Process 400 sends (406) conversion parameters to a payment system. Forexample, the advertiser code snippet, executing at the end user 108,transmits the identified conversion parameters to the system 104.

Non-Realtime Conversion Reporting Process

FIG. 4B is a flow chart of an example of a process 408 for reportingaccumulated conversions from advertisements to actions. Process 408begins with detecting (410) a conversion action. For example, theadvertiser code snippet may be executed from a conversion confirmationweb page indicating that the end user 108 performed a conversion action.

Process 408 identifies (412) conversion parameters related to theconversion action (e.g., information from a cookie or a conversion typeidentifier). For example, the advertiser code snippet may retrieve areferral unit identifier, a publisher identifier, and a date/time of thereferral unit impression and click from a cookie located at the end user108. The advertiser code snippet includes the conversion type identifierassociated with the conversion action performed by the end user 108.

Process 408 accumulates (414) conversion parameters and sends theconversion parameters to a payment system on a scheduled basis. Forexample, the advertiser code snippet, executing at the end user 108,transmits the identified conversion parameters to the advertiser 102.The advertiser 102 accumulates the conversion parameters andperiodically transmits them to the system 104.

Payment Process

FIG. 5 is a flow chart of an example of a process 500 for chargingadvertisers and crediting publishers for conversions from advertisementsto actions. Process 500 begins with receiving (502) conversionparameters. For example, the payment system 104 may receive a purchaseconversion type identifier, a banner ad identifier, the publisheridentifier, and the date/time of the banner ad selection.

Process 500 verifies (504) the received conversion parameters. Forexample, the system 104 verifies the signatures from the cookieinformation and the conversion type identifier. Modifying the cookieinformation or the conversion type identifier invalidates theirsignatures and correspondingly the associated conversion action.

If the verification is successful, process 500 determines (506) costsusing the conversion parameters, otherwise the process 500 performs afailure procedure. For example, the system 104 may retrieve a conversioncost/value associated with the conversion type identifier in theconversion parameters. In addition, repeated conversion actions by anend user may be tracked in the cookie information. Repeated conversionactions may be credited/debited in a different manner than an initialconversion action, such as at a reduced rate or not at all. Failedconversion actions may be tracked and reported to the advertiser 102.The system 104 is tamper proof because no parameters can be altered orfabricated by users, publishers or advertisers.

Process 500 charges (508) the advertiser for costs and credits thepublisher for conversion. For example, the system 104 may charge theadvertiser 102 and credit the publisher 106 for a purchase conversion.Sophisticated replaying of the same conversion action using the samecookie will be caught by a statistical filtering process at the system104 based on signals generated from all aspects of the advertisingprocess, as detailed later.

In some implementations, data associated with conversion actions can beaggregated and analyzed to generate performance data for the entireadvertising system 100, which can then be shared with publishers andadvertisers. For example, conversion rates and other metrics orstatistics can be calculated and presented to publishers and advertisersin the user interfaces described in reference to FIGS. 7 and 12. Suchinformation can be used in ad space auctions or to improve theconfidence of performance predictions for ads.

In some implementations, the system keeps track of information on allaspects of the advertising process including but not limited to: servingthe ad, clicking the ad, and conversions resulting from the ad clicks.This information (which can be tracked using cookies) can be used tocreate signals (e.g., click throughput rates, click delay, the IPaddress from which the action originates) for detecting misbehaviors byusers or publishers. For example, the system can detect repeatedconversion events (e.g., spammed conversions) based on the uniqueness ofan ad's impression. Based on information collected, the system cancorrelate repeated conversion events and sequentially filter out spammedconversions and take actions on the offenders (e.g., terminate accounts,issue warnings).

User Interfaces and Workflows

FIG. 6 is a first portion of an example of a user interface 600 forselecting a referral item. The interface 600 includes a search control602. The search control 602 allows a publisher user to input a searchkeyword to identify referral items for possible publication at thepublisher 106. Alternatively, the publisher user may select a referralitem category from a referral item category list 604. Each categoryindicates a number of included referral items. Selecting a referral itemcategory may present a list of the included referral items.

FIG. 7 is a second portion of an example of a user interface 700 forselecting a referral item. The interface 700 includes a list of referralitems 702. The list 702 may be the result of a search using the searchcontrol 602, a selection of a referral item category, or referral itemrecommendations based on other information, such as referral itemsrelevant to content presented at the publisher 106 or referral itemshaving successful referral units. The list 702 can include names of theadvertisers 102, a name of the referral item (“product”), a number ofassociated referral units (“creatives”), a conversion type (e.g.,purchase, download, and signup), a conversion value (cost per action),and a referral item performance. The performance of a referral itemindicates an effective cost of one thousand impressions (eCPM) of theassociated referral units. That is, the amount of money generated bypresenting the associated referral units to the end users 108 onethousand times. The performance may be estimated by multiplying the costper action (CPA) with the average conversion rate for that actionmultiplied by one thousand. Thus, the eCPM is given by

eCPM=CPA*conversion_rate*1000.  (1)

Referral item selection controls 704 allow the publisher user to selectone or more referral items to include on the publisher website. Otherperformance indicators are possible.

FIG. 8 is an example of a user interface 800 for selecting referralunits associated with a referral item. The interface 800 containsinformation 802 associated with the referral item including theadvertiser name, the item name, the conversion type, the conversionvalue, and the eCPM. Each referral item may have one or more associatedreferral units, such as text links or images. The interface 800 includespresentations 804A-D of the referral units associated with the selectedreferral item. Each of the presentations 804A-D has an associatedreferral unit selection control 806A-D, respectively. The publisher usermay select one or more of the selection controls 806A-D and initiate ageneration of code snippets associated with the selected referral units.

FIG. 9 is an example of a user interface 900 for presenting codesnippets, associated with referral units, to be presented by a publishersystem. The interface 900 includes presentations 902A-B of the referralunits previously selected in the interface 800. Each of thepresentations 902A-B has an associated code snippet 904A-B,respectively. The system 104 generates the code snippets 904A-B. In thisexample, the code snippets 904A-B are JavaScripts to be included in aweb page presented to the end users 108 by one or more of the publishers106. The code snippets 904A-B identify the particular referral unit tobe presented by a publisher.

FIG. 10 is an example of a user interface 1000 for creating a referralunit. An advertiser user may use the interface 1000 to create a referralunit. The interface 1000 includes a conversion type selection control1002, a referral unit description input control 1004, and a cost perconversion input control 1006. The advertiser user may input aconversion type, a description, and a conversion value using thecontrols 1002, 1004, and 1006, respectively. The interface 1000 alsoincludes a link 1008 to an interface where new conversion types may beadded. In addition, the interface 1000 includes links 1010 and 1012 tointerfaces where images, audio, text, video, or other media may beassociated with the referral unit. In some implementations, theconversion value can be specified as a percentage of the transactionvalue of the conversion. For example, if the conversion type is“purchase” then the conversion value can be specified as x% (e.g., 1%)of the profit received by the advertiser.

FIG. 11 is an example of a user interface 1100 for presenting a codesnippet, associated with a referral unit, to be used at an advertisersystem. The interface 1100 presents a code snippet 1102 associated withthe created referral unit. The advertiser 102 includes the code snippet1102 within a conversion confirmation web page. The conversionconfirmation web page may be the result of an end user selecting thereferral unit on a publisher web page, being directed to an advertiserweb page, and performing a conversion action associated with thereferral unit.

FIG. 12 is an example of a user interface 1200 for presenting aconversion action report to an advertiser user. The interface 1200includes a list 1202 of conversion types and a list 1204 of referralunits. Each conversion type in the list 1202 contains a conversion typename (“Pay-Per-Action Conversion Types”), a cost per conversion, a totalnumber of conversions, and a total cost of the conversions. Theadvertiser user may make an input indicating a particular time intervalin which to calculate the totals using a time interval selection control1206. Each of the referral units in the list 1204 contains a referralunit description (“Variations”), a link to edit the conversion actionsassociated with the referral unit, a status of the referral unit, anaverage cost per conversion, a total number of conversions, and a totalcost of the conversions. The referral unit description further includesa type of the ad (e.g., inline ad or banner ad), a size of the ad, and adepiction of the ad. The advertiser user may monitor the progress ofreferral units and conversion types using the interface 1200.

FIG. 13 is a block diagram of an example of a system for storing andretrieving conversion values. The system includes a payment system 1300.The payment system 1300 stores conversion values in a repository 1302.Each conversion value is associated with a particular conversion typeidentifier. For example, conversion type ID 1 is associated with aconversion value of $15. The payment system 1300 receives a conversiontype identifier, such as described above in the process 500. The paymentsystem 1300 retrieves the conversion value associated with the receivedconversion type identifier from the repository 1302. The payment system1300 compiles a report of received conversion types and transmits thereport to an advertiser system or a publisher system.

Advertising System Manager/Payment System Architecture

FIG. 14 is a block diagram of example architecture 1400 for anadvertising system manager/payment system. Other architectures arepossible.

In some implementations, the architecture 1400 includes one or moreprocessors 1402 (e.g., dual-core Intel® Xeon® Processors), one or morerepositories 1404, one or more network interfaces 1406, an optionaladministrative computer 1408 and one or more computer-readable mediums1410 (e.g., RAM, ROM, SDRAM, hard disk, optical disk, flash memory,etc.). These components can exchange communications and data over one ormore communication channels 1412 (e.g., Ethernet) which can includevarious known network devices (e.g., routers, hubs, gateways, buses) andsoftware (e.g., middleware) for facilitating the transfer of data andcontrol signals between devices.

The term “computer-readable medium” refers to any medium thatparticipates in providing instructions to a processor 1402 forexecution, including without limitation, non-volatile media (e.g.,optical or magnetic disks), volatile media (e.g., memory) andtransmission media. Transmission media includes, without limitation,coaxial cables, copper wire and fiber optics. Transmission media canalso take the form of acoustic, light or radio frequency waves.

The computer-readable medium 1410 further includes an operating system1414 (e.g., Linux server, Mac OS® server, Windows® NT server), a networkcommunication module 1416, an advertising system manager 1418 and apayment system 1428.

The operating system 1414 can be multi-user, multiprocessing,multitasking, multithreading, real-time and the like. The operatingsystem 1414 performs basic tasks, including but not limited to:recognizing input from and providing output to the administratorcomputer 1408; keeping track of files and directories oncomputer-readable mediums 1410 (e.g., memory or a storage device);controlling peripheral devices (e.g., repository 1404); and managingtraffic on the one or more communication channels 1412. The networkcommunications module 1416 includes various components for establishingand maintaining network connections (e.g., software for implementingcommunication protocols, such as TCP/IP, HTTP, Ethernet, etc.).

The advertising system manager 1418 includes a web page server 1420, acode snippet generator 1422, a security module 1424 and referral units1426. The web page server 1420 (e.g., Apache web page server) serves webpages to advertisers and publishers and provides an input means foradvertiser and publisher input into the advertising system manager, asdescribed in reference to FIGS. 6-12. The code snippet generator 1422generates the code snippets that are provided to advertisers andpublishers, as described in reference to FIGS. 9 and 11. The securitymodule 1424 is used to digitally sign conversion type identifiers andcookies using known digital signature methods (e.g., RSA, DSA), asdescribed in reference to FIG. 3. Referral units 1426 include image ads,text links, creatives and any other ad that can be placed on a publisherweb page to drive users to advertisers.

The payment system 1428 is responsible for implementing the paymentprocess, as described in reference to FIG. 5. The payment process can befully or partially automated, and can include human intervention at oneor more points in the payment process.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.

1. A computer-implemented method comprising: receiving conversion typedata specifying a plurality of conversion types for an advertisement,wherein each of the plurality of conversion types is different from another conversion type in the plurality and corresponds to a particulartype of user conversion action; receiving cost data specifying for eachconversion type a separate cost for the corresponding type of userconversion action; receiving conversion parameter data specifying afirst type of user conversion action for a first user conversion of theadvertisement; determining a first cost for the conversion typecorresponding to the first type of user conversion action specified bythe conversion parameter data; and charging an advertiser associatedwith the advertisement the first cost.
 2. The method of claim 1, furthercomprising: receiving conversion parameter data specifying a second typeof user conversion action for a second user conversion of theadvertisement; determining a second cost for the conversion typecorresponding to the second type of user conversion action specified bythe conversion parameter data, wherein the second cost is separate fromthe first cost; and charging the advertiser the second cost.
 3. Themethod of claim 1, further comprising: receiving conversion parameterdata specifying a plurality of first type of user conversion actions fora plurality of additional first user conversions of the advertisement,wherein the first user conversion and the plurality of additional firstuser conversions are caused by a same entity; and not charging theadvertiser for one or more of the additional first user conversions inthe plurality after a first user conversion threshold has been exceeded.4. The method of claim 1, further comprising: receiving conversionparameter data specifying a plurality of first type of user conversionactions for a plurality of additional first user conversions of theadvertisement, wherein the first user conversion and the plurality ofadditional first user conversions are caused by a same entity; andcharging, on a per user conversion basis, a reduced first cost to theadvertiser for one or more of the additional first user conversions inthe plurality after a first user conversion threshold has been exceeded.5. The method of claim 1, further comprising: identifying, based on theconversion parameter data, a publisher of a web site on which theadvertisement was presented that resulted in the first user conversion;and crediting the publisher with the first user conversion.
 6. Themethod of claim 1, wherein the plurality of conversion types include atleast one of a purchase conversion type, a download conversion type or asignup conversion type.
 7. The method of claim 1, wherein the conversionparameter data further specify an identifier identifying theadvertisement and a time of the first user conversion.
 8. The method ofclaim 1, wherein the conversion parameter data include data from acookie associated with a client device causing the first userconversion.
 9. The method of claim 8, wherein receiving conversionparameter data specifying a first type of user conversion action for afirst user conversion of the advertisement comprises: verifying anauthenticity of the conversion parameter data based on the data from thecookie.
 10. A computer program product, encoded on one or more memorydevices, including instructions that when executed by one or more dataprocessing apparatuses cause the one or more data processing apparatusesto perform operations comprising: receiving conversion type dataspecifying a plurality of conversion types for an advertisement, whereineach of the plurality of conversion types is different from an otherconversion type in the plurality and corresponds to a particular type ofuser conversion action; receiving cost data specifying for eachconversion type a separate cost for the corresponding type of userconversion action; receiving conversion parameter data specifying afirst type of user conversion action for a first user conversion of theadvertisement; determining a first cost for the conversion typecorresponding to the first type of user conversion action specified bythe conversion parameter data; and charging an advertiser associatedwith the advertisement the first cost.
 11. The computer program productof claim 10, wherein the instructions, when executed by the one or moredata processing apparatuses, cause the one or more data processingapparatuses to further perform operations comprising: receivingconversion parameter data specifying a second type of user conversionaction for a second user conversion of the advertisement; determining asecond cost for the conversion type corresponding to the second type ofuser conversion action specified by the conversion parameter data,wherein the second cost is separate from the first cost; and chargingthe advertiser the second cost.
 12. The computer program product ofclaim 10, wherein the instructions, when executed by the one or moredata processing apparatuses, cause the one or more data processingapparatuses to further perform operations comprising: receivingconversion parameter data specifying a plurality of first type of userconversion actions for a plurality of additional first user conversionsof the advertisement, wherein the first user conversion and theplurality of additional first user conversions are caused by a sameentity; and not charging the advertiser for one or more of theadditional first user conversions in the plurality after a first userconversion threshold has been exceeded.
 13. The computer program productof claim 10, wherein the instructions, when executed by the one or moredata processing apparatuses, cause the one or more data processingapparatuses to further perform operations comprising: receivingconversion parameter data specifying a plurality of first type of userconversion actions for a plurality of additional first user conversionsof the advertisement, wherein the first user conversion and theplurality of additional first user conversions are caused by a sameentity; and charging, on a per user conversion basis, a reduced firstcost to the advertiser for one or more of the additional first userconversions in the plurality after a first user conversion threshold hasbeen exceeded.
 14. The computer program product of claim 10, wherein theinstructions, when executed by the one or more data processingapparatuses, cause the one or more data processing apparatuses tofurther perform operations comprising: identifying, based on theconversion parameter data, a publisher of a web site on which theadvertisement was presented that resulted in the first user conversion;and crediting the publisher with the first user conversion.
 15. Thecomputer program product of claim 10, wherein the plurality ofconversion types include at least one of a purchase conversion type, adownload conversion type or a signup conversion type.
 16. The computerprogram product of claim 10, wherein the conversion parameter datafurther specify an identifier identifying the advertisement and a timeof the first user conversion.
 17. The computer program product of claim10, wherein the conversion parameter data include data from a cookieassociated with a client device causing the first user conversion. 18.The computer program product of claim 17, wherein receiving conversionparameter data specifying a first type of user conversion action for afirst user conversion of the advertisement comprises: verifying anauthenticity of the conversion parameter data based on the data from thecookie.
 19. A system comprising: one or more data processors; andsoftware stored on a computer storage apparatus and comprisinginstructions executable by the one or more data processors and upon suchexecution cause the one or more data processors to perform operationscomprising: receiving conversion type data specifying a plurality ofconversion types for an advertisement, wherein each of the plurality ofconversion types is different from an other conversion type in theplurality and corresponds to a particular type of user conversionaction; receiving cost data specifying for each conversion type aseparate cost for the corresponding type of user conversion action;receiving conversion parameter data specifying a first type of userconversion action for a first user conversion of the advertisement;determining a first cost for the conversion type corresponding to thefirst type of user conversion action specified by the conversionparameter data; and charging an advertiser associated with theadvertisement the first cost.
 20. The system of claim 19, wherein theinstructions, when executed by the one or more data processors, causethe one or more data processors to further perform operationscomprising: receiving conversion parameter data specifying a second typeof user conversion action for a second user conversion of theadvertisement; determining a second cost for the conversion typecorresponding to the second type of user conversion action specified bythe conversion parameter data, wherein the second cost is separate fromthe first cost; and charging the advertiser the second cost.
 21. Thesystem of claim 19, wherein the instructions, when executed by the oneor more data processors, cause the one or more data processors tofurther perform operations comprising: receiving conversion parameterdata specifying a plurality of first type of user conversion actions fora plurality of additional first user conversions of the advertisement,wherein the first user conversion and the plurality of additional firstuser conversions are caused by a same entity; and not charging theadvertiser for one or more of the additional first user conversions inthe plurality after a first user conversion threshold has been exceeded.22. The system of claim 19, wherein the instructions, when executed bythe one or more data processors, cause the one or more data processorsto further perform operations comprising: receiving conversion parameterdata specifying a plurality of first type of user conversion actions fora plurality of additional first user conversions of the advertisement,wherein the first user conversion and the plurality of additional firstuser conversions are caused by a same entity; and charging, on a peruser conversion basis, a reduced first cost to the advertiser for one ormore of the additional first user conversions in the plurality after afirst user conversion threshold has been exceeded.